iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
Modern Web

ASP.NET Core 入門實戰30天系列 第 18

Day 18 Entity Framework Core - DBContext

  • 分享至 

  • xImage
  •  

本篇重點

DbContext


前言

今天來討論DBConText
並實際來跑一個例子


DBContext

DBContext是一個微軟提供用來針對DB操作的一個Class
主要用來處理DB之間的CURD
以及管理DB的一些連線等等
接下來透過一個簡單的範例
來練習一下EF Core在mac上的操作


Demo

  1. 新增一個ASP .NET Core 的應用程式

    這裡直接用Console應用程式去做練習
    Console應用程式因為不是web,是沒有startup.cs這個程式的

  2. 使用dot cl安裝對應的 .NET Core EntityFrameworkCore
    在這裡是使用sqllite,微軟有提供各種DB搭配的framework
    對照

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
  1. 新增DBContent
    新增一個Class,繼承DBContext這個class
    可以override OnConfiguring 這個方法
    在這裡因為是測試,所以先將連接字串寫死,實務上會將這個設定設到
    config裡面

    optionsBuilder.UseSqlite("Data Source=blogging.db");
    //真正在專案裡面會將這個設定寫成confoig
    

  2. 建立要新增的Table Object
    在DBContext裡面有新增一個屬性為Movie的DBSet,這裡要新增Movie這個class,到時候透過DBContext根據這個物件去建立出我們要的DB

  3. 主程式新增get DB方法及寫入的方法
    先在主程式一開始新增一個剛剛建立的DBContext

     private static MyDBContext context = new MyDBContext();
    


    這裡在主程式新增兩個方法:

    getMove

    • 是透過Context去取出裡面的Move DB
      將物件下面的屬性,也就是table的欄位資料顯示出來

    addMove

    • 則是新增Move這個物件,透過context提供的方法
      新add一個dbset,然後透過提供的SaveChange()去將它存入
  4. Main加入判斷條件

 private static MyDBContext context = new MyDBContext();//宣告DBContext
    static void Main(string[] args)
        {

            if (context.Database.EnsureCreated())    //判斷db是不是有存在的方法
            {
                getMove("before add a db...");
                addMove();
                getMove("after add a db...");
            }
            else
            {
                getMove("before add a db...");
            }
           

            Console.WriteLine("Press key...");
            Console.ReadKey();
        }
  1. 執行結果
    因為第一次執行是沒有任何DB寫入的
    透過addMove寫入的一個dbContext進去
    建立一個新的db

從這個簡單的範例可以了解到
DBContext這個class是讓 .net Core可以透過Code First去設計我們的DB
以前的EF 都只能在windows上執行
但隨著 .net Core
也同樣推出對應的EF Core版本


參考資料:
https://dotnettutorials.net/lesson/entity-framework-core/


上一篇
Day 17 Entity Framework Core
下一篇
Day 19 Entity Framework Core (3)
系列文
ASP.NET Core 入門實戰30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言